﻿using WMS.FC.Domain.DomainObject.System;
using WMS.FC.Domain.PersistenceObject.Business;

namespace WMS.FC.Domain.Repository
{
    public interface ITrayRepository : IRepositoryBase
    {
        /// <summary>
        /// 获取托盘绑定电池信息
        /// </summary>
        /// <param name="trayBarcode"></param>
        /// <returns></returns>
        Task<List<CellPO>> GetTrayCellList(string trayBarcode);

        /// <summary>
        /// 根据条码获取托盘
        /// </summary>
        /// <param name="trayBarcode"></param>
        /// <returns></returns>
        Task<TrayPO?> GetTrayByBarcode(string trayBarcode);

        /// <summary>
        /// 跟据底层条码获取托盘组
        /// </summary>
        /// <param name="trayBarcode"></param>
        /// <returns></returns>
        Task<List<TrayPO>> GetTrayListByBarcode(string trayBarcode);

        /// <summary>
        /// 拆叠盘
        /// </summary>
        /// <param name="containerBarcode"></param>
        /// <param name="userInfo"></param>
        /// <returns></returns>
        Task<int> UnpileTray(string containerBarcode, UserInfo userInfo);

        /// <summary>
        /// 获取托盘组绑定电池信息
        /// </summary>
        /// <param name="trayBarcodeList"></param>
        /// <returns></returns>
        Task<List<CellPO>> GetTrayCellList(List<string> trayBarcodeList);
    }
}
